import random
from datetime import datetime, timedelta
from app.models.mysql_db import db
from app.models.user import User
from app.models.device import Device, UserDevice, DeviceMaintenance
from app.models.mongodb import mongodb

def init_test_data(app):
    """初始化测试数据"""
    with app.app_context():
        # 创建测试用户
        create_test_users()
        
        # 创建测试设备
        create_test_devices()
        
        # 创建设备使用记录
        create_device_usage_records()
        
        # 创建设备异常记录
        create_device_anomaly_records()
        
        # 创建设备维护记录
        create_device_maintenance_records()
        
        print("测试数据初始化完成")

def create_test_users():
    """创建测试用户"""
    # 检查是否已有测试用户
    test_user = User.query.filter_by(username='zhangsan').first()
    if not test_user:
        # 创建测试用户
        users = [
            {
                'username': 'zhangsan',
                'email': 'zhangsan@example.com',
                'nickname': '张三',
                'password': 'password123',
                'role': 'user'
            },
            {
                'username': 'lisi',
                'email': 'lisi@example.com',
                'nickname': '李四',
                'password': 'password123',
                'role': 'user'
            }
        ]
        
        for user_data in users:
            user = User(
                username=user_data['username'],
                email=user_data['email'],
                nickname=user_data['nickname'],
                role=user_data['role']
            )
            user.set_password(user_data['password'])
            db.session.add(user)
        
        db.session.commit()
        print("测试用户创建成功")
    else:
        print("测试用户已存在，无需创建")

# 其他初始化函数...
def create_test_devices():
    """创建测试设备"""
    # 实现设备创建逻辑
    pass

def create_device_usage_records():
    """创建设备使用记录"""
    # 实现使用记录创建逻辑
    pass

def create_device_anomaly_records():
    """创建设备异常记录"""
    # 实现异常记录创建逻辑
    pass

def create_device_maintenance_records():
    """创建设备维护记录"""
    # 实现维护记录创建逻辑
    pass